#!/usr/bin/env bash

#=======================================================================#
# Copyright (C) 2020 - 2024 Dominik Willner <th33xitus@gmail.com>       #
#                                                                       #
# This file is part of KIAUH - Klipper Installation And Update Helper   #
# https://github.com/dw-0/kiauh                                         #
#                                                                       #
# This file may be distributed under the terms of the GNU GPLv3 license #
#=======================================================================#

set -e
clear

### sourcing all additional scripts
KIAUH_SRCDIR="$(dirname -- "$(readlink -f "${BASH_SOURCE[0]}")")"
for script in "${KIAUH_SRCDIR}/scripts/"*.sh; do . "${script}"; done
for script in "${KIAUH_SRCDIR}/scripts/ui/"*.sh; do . "${script}"; done

#===================================================#
#=================== UPDATE KIAUH ==================#
#===================================================#

function update_kiauh() {
  status_msg "Updating KIAUH ..."

  cd "${KIAUH_SRCDIR}"
  git reset --hard && git pull

  ok_msg "Update complete! Please restart KIAUH."
  exit 0
}

# #===================================================#
# #=================== KIAUH STATUS ==================#
# #===================================================#

# function kiauh_update_avail() {
#   [[ ! -d "${KIAUH_SRCDIR}/.git" ]] && return
#   local origin head

#   cd "${KIAUH_SRCDIR}"

#   ### abort if not on master branch
#   ! git branch -a | grep -q "\* master" && return

#   ### compare commit hash
#   git fetch -q
#   origin=$(git rev-parse --short=8 origin/master)
#   head=$(git rev-parse --short=8 HEAD)

#   if [[ ${origin} != "${head}" ]]; then
#     echo "true"
#   fi
# }

# function kiauh_update_dialog() {
#   [[ ! $(kiauh_update_avail) == "true" ]] && return
#   top_border
#   echo -e "|${green}              New KIAUH update available!              ${white}|"
#   hr
#   echo -e "|${green}  View Changelog: https://git.io/JnmlX                 ${white}|"
#   blank_line
#   echo -e "|${yellow}  It is recommended to keep KIAUH up to date. Updates  ${white}|"
#   echo -e "|${yellow}  usually contain bugfixes, important changes or new   ${white}|"
#   echo -e "|${yellow}  features. Please consider updating!                  ${white}|"
#   bottom_border

#   local yn
#   read -p "${cyan}###### Do you want to update now? (Y/n):${white} " yn
#   while true; do
#     case "${yn}" in
#       Y|y|Yes|yes|"")
#         do_action "update_kiauh"
#         break;;
#       N|n|No|no)
#         break;;
#       *)
#         deny_action "kiauh_update_dialog";;
#     esac
#   done
# }

INSTALL_USER=klipper

function install_klipper() {
  status_msg "Start Klipper installation ...\n"
  start_klipper_setup
}

function install_moonraker() {
  status_msg "Start moonraker installation ...\n"
  moonraker_setup_dialog
}

function install_mainsail_web() {
  install_mainsail
}

function install_klipper_screen() {
  install_klipperscreen
}

function install_camera_server() {
  install_crowsnest
}

function git_config() {
  git config --global --add safe.directory "*"
}

ROOTPWD="creatbot"
HOME=/home/klipper
echo $HOME

# su - klipper << EOF
check_euid
init_logfile
set_globals
install_klipper
install_moonraker
install_mainsail_web
install_klipper_screen
install_camera_server
git_config

